// get_arg.h
//

#if !defined(GETARG_H)
#define GETARG_H

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include <string>
#include <sstream>
#include <iostream>



enum eANALYSIS {eUPGMA, eKITSCH, eUPGMA_KITSCH};
class t_program_args
{
public:
	eANALYSIS		analysis_type;
	std::string  	taxon1;
	std::string  	taxon2;
	unsigned	  	keyhole_size;
	bool			fill_lacunae;
	double			power;
	std::string		ks_file;
	std::string		out_file_prefix;
	unsigned		cnt_iterative_fitch_passes;
	// for initializing this struct
	friend
	bool process_command_line_options(int argc, char* argv[], t_program_args& args);
	std::ostream&	VERBOSE() {return verbose ? std::cerr : strm_ignore;}


	bool IsVerbose() const	{return verbose;}
private:
	bool				verbose;
	std::ostringstream 	strm_ignore;
};

bool process_command_line_options(int argc, char* argv[], t_program_args& args);
#endif //GETARG_H

